package com.lzh.seatrend.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.extern.java.Log;

import javax.persistence.Id;
import javax.persistence.Table;

/**
 * <-----笔记----->
 * @Data 默认添加 getter，setter，tostring,和无参构造函数
 * canEqual,hashCode,equals
 * 若是添加了
 * @AllArgsConstructor
 * 则需手动添加无参构造声明
 * @NoArgsConstructor
 *
 * @Value
 * 这个注解用在 类 上，会生成含所有参数的构造方法，getter 方法，此外还提供了equals、hashCode、toString 方法。
 * 注意：没有setter
 *
 * @NonNull
 * 该注解使用在属性上，该注解用于属的非空检查，当放在setter方法的字段上，将生成一个空检查，如果为空，则抛出NullPointerException。
 * 该注解会默认是生成一个无参构造。
 * @toString
 *  该注解使用在类上，该注解默认生成任何非讲台字段以名称-值的形式输出。
 *  1、如果需要可以通过注释参数includeFieldNames来控制输出中是否包含的属性名称。
 *  2、可以通过exclude参数中包含字段名称，可以从生成的方法中排除特定字段。
 *  3、可以通过callSuper参数控制父类的输出。
 *  @RequiredArgsConstructor
 *  该注解使用在类上，使用类中所有带有 @NonNull 注解的或者带有 final 修饰的成员变量生成对应的构造方法。
 *
 */

@Data
@NoArgsConstructor
@AllArgsConstructor
@Log
@ToString(exclude = "desperation")
@Table(name = "ProductInfo")
public class ProductInfoEntity {

    @Id
    private String productid;
    private String productname;
    private Integer productprice;
    private Integer quantity;
    private String category;
    private String desperation;
    private String origin;
    private String remark;

    public static void main(String[] args) {
    }
}
